﻿Imports Biz
Imports DAL


''' <summary>
''' Clase de gestión de lógica de negocio para la entidad Medios de Búsqueda
''' </summary>
''' <remarks></remarks>
Public Class GestorMedios_Busqueda

    Private Shared _instance As GestorMedios_Busqueda
    Private Shared m_semaforo As New Object

    Private _DALMedios_Busqueda As DALMedios_Busqueda

    ''' <summary>
    ''' Obtiene un objeto Departamento.
    ''' </summary>
    ''' <param name="oMedios_Busqueda">Objeto Departamento con la propiedad Dep_Codigo seteada
    ''' con el valor del Departamento a buscar.</param>
    ''' <returns>Objeto cMedios_Busqueda con datos obtenidos desde la base de datos.</returns>
    ''' <remarks></remarks>
    Public Function Buscar(ByVal oMedios_Busqueda As cMedios_Busqueda) As cMedios_Busqueda

        Return _DALMedios_Busqueda.Sel(oMedios_Busqueda)

    End Function

    ''' <summary>
    ''' Realiza una llamada a la capa de acceso a datos DAL para consultar la lista de Medios de Búsqueda
    ''' </summary>
    ''' <returns>Colección de objetos de tipo cMedios_Busqueda</returns>
    ''' <remarks></remarks>
    Public Function Consultar() As Collection

        Return _DALMedios_Busqueda.SelectAll

    End Function

    ''' <summary>
    ''' Realiza una llamada a la capa de acceso a datos DAL para consultar la lista de Medios de Búsqueda para un Tipo de Medios de Búsqueda
    ''' </summary>
    ''' <param name="iTMedB_Codigo">Identificación de Tipo de Medios de Búsqueda</param>
    ''' <returns>Colección de objetos de tipo cMedios_Busqueda</returns>
    ''' <remarks></remarks>
    Public Function ConsultarPorTipo(iTMedB_Codigo As Int16) As Collection

        Return _DALMedios_Busqueda.SelectPorTipo_All(iTMedB_Codigo)

    End Function

    ''' <summary>
    ''' Da de alta un nuevo Departamento.
    ''' </summary>
    ''' <param name="oMedios_Busqueda">Objeto cMedios_Busqueda con los datos del Departamento a dar
    '''  de alta.</param>
    ''' <returns>True o False indicando el exito de la operación.</returns>
    ''' <remarks></remarks>
    Public Function Ingresar(ByVal oMedios_Busqueda As cMedios_Busqueda) As Boolean
        Return _DALMedios_Busqueda.Insert(oMedios_Busqueda)
    End Function

    ''' <summary>
    ''' Realiza una llamada a la capa de acceso a datos DAL para eliminar un Medio de Búsqueda
    ''' </summary>
    ''' <param name="oMedios_Busqueda">Objeto de tipo cMedios_Busqueda con la identificación del registro a eliminar</param>
    ''' <returns>Valor booleano que indica el resultado de la operación</returns>
    ''' <remarks></remarks>
    Public Function Eliminar(ByVal oMedios_Busqueda As cMedios_Busqueda) As Boolean
        Return _DALMedios_Busqueda.Delete(oMedios_Busqueda)
    End Function

    ''' <summary>
    ''' Realiza una llamada a la capa de acceso a datos DAL para actualizar un Medio de Búsqueda
    ''' </summary>
    ''' <param name="oMedios_Busqueda">Objeto de tipo cMedios_Busqueda con la identificación del objeto a buscar</param>
    ''' <returns>Valor booleano que indica el resultado de la operación</returns>
    ''' <remarks></remarks>
    Public Function Editar(ByVal oMedios_Busqueda As cMedios_Busqueda) As Boolean
        Return _DALMedios_Busqueda.Update(oMedios_Busqueda)
    End Function

    ''' <summary>
    ''' Método estático Instance para exponer una única instancia de la clase GestorMedios_Busqueda
    ''' </summary>
    ''' <returns>Unica instancia de la clase GestorMedios_Busqueda</returns>
    ''' <remarks></remarks>
    Public Shared Function Instance() As GestorMedios_Busqueda
        If _instance Is Nothing Then
            SyncLock (m_semaforo)
                If _instance Is Nothing Then
                    _instance = New GestorMedios_Busqueda
                End If
            End SyncLock
        End If

        Return _instance
    End Function

    Private Sub New()
        _DALMedios_Busqueda = DALMedios_Busqueda.Instance
    End Sub

End Class
